package cn.jzx.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
//DRY  do not repeat yourself
public class ShiDuanUDF extends UDF {

    private Text shiduan = new Text();

    public Text evaluate(final Text s) {
        if (s == null) { return null; }
        String str = s.toString();
        String shiStr = str.split(":")[0];
        int shi = Integer.parseInt(shiStr);
        String duan=null;
        //12小时制 上午
        if(str.endsWith("AM")){
            duan = getDuan(shi%12);
        }
        //12小时制 下午
        if(str.endsWith("PM")){
            duan = getDuan(shi%12+12);
        }
        //24小时制
        if(!str.endsWith("AM")&&!str.endsWith("PM")){
            duan = getDuan(shi);
        }
        shiduan.set(duan);
        return shiduan;



    }

    private String getDuan(int shi) {
        //假设修正法
        String shiduan = "凌晨";

        if(shi>=6){
            shiduan="上午";
        }
        if(shi >=10){
            shiduan="中午";
        }
        if(shi >=14){
            shiduan="下午";
        }
        if(shi >=18){
            shiduan="晚上";
        }
        return  shiduan;


        /*if(shi >=0 && shi < 6){
            return "凌晨";
        }
        if(shi >=6 && shi < 10){
            return "上午";
        }
        if(shi >=10 && shi < 14){
            return "中午";
        }
        if(shi >=14 && shi<18){
            return "下午";
        }
        if(shi >=18){
            return "晚上";
        }
        return "未知";*/
    }

}